using System;
using UnityEngine;

using UnityEngine;
using System;

/// <summary>
/// 时钟组件：通过旋转指针显示系统时间
/// </summary>
public class Clock : MonoBehaviour {
	// 旋转角度常量（负值表示顺时针旋转，符合时钟实际转动方向）
	const float 
		HoursToDegrees = -30f,    // 每小时旋转角度（360°/12小时）
		MinutesToDegrees = -6f,   // 每分钟旋转角度（360°/60分钟）
		SecondsToDegrees = -6f;   // 每秒钟旋转角度（同分钟）

	[Header("时钟指针")]
	[SerializeField] 
	Transform hoursPivot;        // 小时针旋转轴（需在Inspector拖拽赋值）
    
	[SerializeField] 
	Transform minutesPivot;      // 分针旋转轴
    
	[SerializeField] 
	Transform secondsPivot;      // 秒针旋转轴

	/// <summary>
	/// 每帧更新时钟指针位置
	/// </summary>
	void Update () {
		// 获取当前系统时间（精确到毫秒）
		TimeSpan time = DateTime.Now.TimeOfDay;

		// 计算并应用小时指针旋转
		hoursPivot.localRotation = Quaternion.Euler(
			0f,                  // X轴旋转
			0f,                  // Y轴旋转
			HoursToDegrees * (float)time.TotalHours  // Z轴旋转角度
		);

		// 计算并应用分钟指针旋转
		minutesPivot.localRotation = Quaternion.Euler(
			0f,
			0f,
			MinutesToDegrees * (float)time.TotalMinutes
		);

		// 计算并应用秒针旋转
		secondsPivot.localRotation = Quaternion.Euler(
			0f,
			0f,
			SecondsToDegrees * (float)time.TotalSeconds
		);
	}
}